/**
 * 动态调用云对象方法
 * @param objectName 云对象名
 * @param methodName 方法名
 * @param params 方法参数
 */
export default async function callCloud<F extends (...args: any) => any>(
  objectName: string = 'muguaqian',
  methodName: string,
  params: Parameters<F> // 自动提取参数类型
): Promise<ReturnType<F>> { // 自动提取返回类型
  const cloudObj = uniCloud.importObject(objectName)
  
  try {
    return await cloudObj[methodName](params)
  } catch (err) {
    console.error(
      `[Cloud Error] 调用 ${objectName}.${String(methodName)} 失败:`,
      err
    )
    throw new Error(`云服务调用失败: ${err.message}`)
  }
}